@mixin modal($z-index: default, $color: default, $background-color: default) {
  @if $z-index == default {
    $z-index: map-get($z-indexes, modal);
  }
  @if $color == default {
    $color: $text-color-theme-dark;
  }
  @if $background-color == default {
    $background-color: $mask-color;
  }
  position: fixed;
  top: 0;
  left: 0;
  z-index: $z-index;
  width: 100%;
  height: 100%;
  color: $color;
  touch-action: none;
  background-color: $background-color;
  opacity: 0;
  @include transform(translate(100%, 0));
  @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function),
  transform 0s map-get($animation, duration) map-get($animation, timing-function)});
}
@mixin modal--show() {
  opacity: 1;
  @include transform(translate(0, 0));
  @include transition(#{opacity map-get($animation, duration) map-get($animation, timing-function)});
}

.modal {
  @include modal();
}
.modal--show {
  @include modal--show();
}
.modal--overflow {
  @include overflow(auto);
}